/**
 * 预加载元素
 * @type {{}}
 */
var res = {
    Realy_BG:"res/room/realy_bg.png",
    Realy_BJPG:"res/room/realy_bg.jpg",
    Realy_FACE:"res/room/d_face.png",
    Room_PENG:"res/room/peng.png",
    Room_CHI:"res/room/chi.png",
    Room_CLOSE:"res/room/close.png",
    Room_HU:"res/room/hu.png",
    HUPAI:"res/room/hupai.png",
    /*************** trip ********************/
    TRIP_BI:"res/green/trip/bi.png",
    TRIP_chi:"res/green/trip/chi.png",
    TRIP_pao:"res/green/trip/pao.png",
    TRIP_peng:"res/green/trip/peng.png",
    TRIP_ti:"res/green/trip/ti.png",
    TRIP_wei:"res/green/trip/wei.png",
    TRIP_zhuang:"res/green/trip/zhuang.png",
    TRIP_zhunbei:"res/green/trip/zhunbei.png"
};
var g_resources = [];
for (var i in res) {
    g_resources.push(res[i]);
}
/**
 * 用于获取浏览器地址栏参数使用
 * @param name
 * @returns {null}
 * @constructor
 */
function GetQueryString(name) {
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if(r!=null)return  unescape(r[2]); return 0;
}
//全局变量
var PB_WS_HTTP   = "192.168.0.19";//WS通讯地址；这里最好使用多服务器；然后利用房间号来进行服务器区分
var PB_USER_NAME = GetQueryString("name");//用户名（微信名）
var PB_USER_UID  = GetQueryString("uid");//用户ID
var PB_WS        = null;//ws链接标识
var PB_MD_NUM    = 0;//本地心跳包（每次取一条记录，但都要大于该值；该值对应log中的ID）
var PB_MD_LOGS   = new Array();//已读取过的cc记录，存在记录中的不允许重复执行
var GAME_WS_TIME = 0.1;//这里是轮询时间，开发的时候0.1-0.3，上线配置为0.5-1秒；
var GAME_OVER    = false;//这里默认是false，如果是true的情况下；全局不准拖牌
//一些参数，我也不知道写到那里合适
var PAI_HAO = new Array();
for ( var i  = 1 ; i <= 20 ; i++ ){
    if( i <= 10 ){
        PAI_HAO[i] = "dx" + i;
    }else{
        PAI_HAO[i] = "dd" + (i-10);
    }
}
var xinapai     = new Array();
var BIG_DUN     = 1;
var BIG_PAI     = new Array();
var JINTUO      = new Array();//当前禁止拖动的数字
var DUN_PS      = new Array(0,0,0,0,0,0,0,0);//用来记录每一蹲的牌数量
var YIDONG      = new Array();//各蹲需要移动的偏移量
var DUN_NO_TUO  = new Array();//记录不能被拖放牌的吨数
var DUNSHU      = 6;//牌的蹲数（2种模式都是8）
var DUN_1_LEFT  = 0;//第一蹲牌的Y轴距离最左边的距离
var PAI_ENLARGE = 0.25;//牌面放大倍数
var PAI_WIDTH   = 76 + (PAI_ENLARGE*76);//牌面的宽度
var JILU_TC     = new Array();//用来记录每蹲牌的顶部可拖动区域
var LR_CHAZHI   = 40;//允许顶部拖动的左右最大偏移量
var LINE_CHUPAI = 500;//y轴线，超过这跳线为出牌
var PAI_BOTOTM  = -10;//最底下张牌默认的y轴距离
var PAI_JIANJU  = 65 + (PAI_ENLARGE*65);//牌跟牌之间的间隔
//全局Layer对象
var PL_Main      = null;//主界面
var PL_Room_Realy= null;//房间准备界面
var PL_Room_Play = null;//房间游戏界面
//游戏牌桌上的全局变量
var ROOM_ID          = 888888;//房间号
var ROOM_FACE_CPOINT = 62;//房间内用户头像所在的上下左右的偏移量
var ROOM_WS_MY       = 0;//房间内每个位置的人是否已经来到 - 自己
var ROOM_WS_XJ       = 0;//房间内每个位置的人是否已经来到 - 下家
var ROOM_WS_DM       = 0;//房间内每个位置的人是否已经来到 - 对面
var ROOM_WS_SJ       = 0;//房间内每个位置的人是否已经来到 - 上家
var All_B0_Layer     = new Array();
var All_B1_Layer     = new Array();
var All_B2_Layer     = new Array();
var All_B3_Layer     = new Array();
var SMALL_PAI_H      = 42;//下牌区域的小牌的差值高；（决定是否有空隙）
var PASS_PAI_C       = 4;//废弃的牌每行的个数,按理说4个一排；8个基本差不多了
var TOP_LEFT_NAME_X   = 310;//左上角废弃牌左偏X移量
var TOP_LEFT_NAME_Y   = 70;//左上角废弃牌左偏X移量
var TOP_RIGHT_NAME_X  = 310;//右上角废弃牌的x偏移量
var TOP_RIGHT_NAME_Y   = 70;//右上角废弃牌的y偏移量
var DEFAULT_NAME_COLOR = new Array(255,215,0);//名字的默认颜色
var TOP_LEFT_XP_HEIGHT = 155;//左上下牌区域距离顶部的高
var LB_XP_HEIGHT       = 745;//左下角的下牌距离区域
var RB_XP_HEIGHT       = 245;//左下角的下牌距离区域
var ZJ_ZF = "0";
var ZJ_HX = "0";
var XJ_ZF = "0";
var XJ_HX = "0";
var SJ_ZF = "0";
var SJ_HX = "0";
var DM_ZF = "0";
var DM_HX = "0";
//游戏进行中的变量,这个值随着每一次的信息变化而变化
var GAME_DP_NUM      = 23;//初始化底牌23张；随着每一次摸牌而减少
var GAME_PUT_UID     = 0;//当前谁有权限打牌
var GAME_IS_PENG     = 0;//当前状态是否有人能碰
var GAME_IS_CHI      = 0;//当状态是否有人能吃
var GAME_NOW_BTN_C   = 0;//当前BTN总数
var GAME_OUT_PAI     = new Array();//桌面上被打出来的牌
var ZJ_CPS           = 0;//本家丢弃的牌的总数
var XJ_CPS           = 0;//....
var SJ_CPS           = 0;//....
var DM_CPS           = 0;//....
var ZJ_XP_COUNT      = 1;//本家下牌的总数，用来计算下牌的x轴的偏移量
var XJ_XP_COUNT      = 1;
var SJ_XP_COUNT      = 1;
var DM_XP_COUNT      = 1;
var GAME_CHI_PAI     = new Array();
var JUST_CHI         = false;
var WEI_PAI_ZJ       = new Array();//这里需要给每个用户的每组畏牌做全局记录 - 因为下跑的时候，需要在畏的牌上做操作
var WEI_PAI_XJ       = new Array();
var WEI_PAI_SJ       = new Array();
var WEI_PAI_DM       = new Array();
var PENG_PAI_ZJ      = new Array();//这里需要给每个用户的每组碰牌做全局记录 - 因为下跑的时候，需要在畏的牌上做操作
var PENG_PAI_XJ      = new Array();
var PENG_PAI_SJ      = new Array();
var PENG_PAI_DM      = new Array();
var MOPAI_PENG       = new Array();//摸牌后，允许碰的人的集合
var MOPAI_CHI        = new Array();//摸牌后，允许吃的人的集合
var MOPAI_HU         = new Array();//摸牌后，允许胡的人的集合
var IS_GAME_REALY    = false;
//桌面待清元素集合
var MISCE     = new Array();
